package leetcode.test;

import java.util.*;

//// 注意类名必须为 Main, 不要有任何 package xxx 信息
//public class Main {
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        int m = in.nextInt();
//        int ans = 0;
//        int[][] s = new int[n + 10][m + 10];
//        for (int i = 1; i <= n; i++) {
//            String line = in.next();
//            for (int j = 1; j <= m; j++) {
//                char c = line.charAt(j - 1);
//                s[i][j] = c - '0';
//            }
//            if (i > 1) {
//                for (int j = 2; j <= m; j++) {
//                    ans += sum(s, i - 1, j - 1, i, j) == 2 ? 1 : 0;
//                }
//            }
//        }
//        System.out.println(ans);
//    }
//
//    private static int sum(int[][] s, int x1, int y1, int x2, int y2) {
//        return s[x2][y2] + s[x2][y1] + s[x1][y2] + s[x2][y2];
//    }
//}

//// 注意类名必须为 Main, 不要有任何 package xxx 信息
//public class Main {
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        char[] s = in.next().toCharArray();
//        int cnt = 0;
//
//        for (int i = 1; i < n; i++) {
//            while (i < n && s[i - 1] == s[i]) {
//                cnt++;
//                i++;
//            }
//        }
//        System.out.println(cnt);
//    }
//}

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), ans = 0;
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        char[] color = in.next().toCharArray();
        Map<Integer, Integer> num2Idx = new HashMap<>();
        for (int i = 0; i < n; i++) {
            if (color[i] == 'W') {
                if (a[i] == i + 1) continue;
                System.out.println(-1);
                return;
            }
            if (a[i] == i + 1) continue;
            num2Idx.put(a[i], i);
        }
//        System.out.println(num2Idx);
        for (Map.Entry<Integer, Integer> entry : num2Idx.entrySet()) {
            int num = entry.getKey();
            int idx = entry.getValue();
            int targetIdx = num - 1;
            if (a[targetIdx] == num) continue;
            swap(a, idx, targetIdx);
            num2Idx.computeIfPresent(a[idx], (k, v) -> idx);
            num2Idx.computeIfPresent(a[targetIdx], (k, v) -> targetIdx);
//            System.out.println(Arrays.toString(a));
            ans++;
        }
        System.out.println(ans);
    }

    private static void swap(int[] a, int idx, int targetIdx) {
        int t = a[idx];
        a[idx] = a[targetIdx];
        a[targetIdx] = t;
    }
}